1. Field of the Invention
The present invention generally relates to computer graphics rendering systems for the creation and display of arbitrarily complex scenes, and in particular to methods for improving the apparent performance of such systems under the constraints imposed by operation in real-time.
2. Background Description
Computer systems designed to generate images often are comprised of various stages that can be implemented in combinations of hardware and software. Although there are a great variety of implementations, in general all systems are similar in function. At the coarsest level, computer graphics systems consist of two major components: a database to describe the geometric entities which need to be created, and the rendering pipeline, which transforms this database into a displayed image.
The performance limitations of a computer graphics system are most poignant in real-time situations, where scene complexity is limited by the specific amount of time available to generate the image. For example, real-time image generators (another name for computer graphics rendering systems) commonly must complete and display a new frame every thirtieth of a second. How an image generator implements the various intermediate stages and characterizes its inevitable bottlenecks bounds its performance.
The two most common gauges of performance of a graphics system are its ability to generate geometric primitives, such as polygons, and screen space primitives, such as pixels. (For the sake of clarity, the remainder of this document will discuss polygons and pixels, although the methods described herein would apply equally well to many other methods of image generation, such as parametric surfaces with control points, and non-raster displays.)
Polygon and pixel processing are also the source of two of the major bottlenecks in rendering pipelines. Polygon processing usually dominates the front-end of the pipeline, and is often the limiting factor for the transition between database loading and rendering. Pixels are generated within the rendering pipeline, prior to image display.
One of the challenges of designing computer graphics systems is that simply changing the viewing position of a static database can drastically alter the polygonal or pixel requirements. It is therefore important that methods to extend the apparent capability of computer graphics systems behave in a manner which performs consistently. For real-time situations, solutions which vary widely in effectiveness depending on viewing position are of questionable value, since the worst case is always the constraint limiting performance.
Much of the work aimed at optimizing these systems focuses on the fact that computer imagery is usually generated with a perspective view, as is common in stereo viewing in real life. The representation of a polygon and its pixel coverage changes depending on its position and the viewing position in a perspective scene. The farther away from the viewpoint an object is, the smaller its screen representation. The problem this creates is that perspective scenes of a relatively balanced distribution of objects concentrate object density in the distance. This is directly in opposition to the usual desire to have more detail close to the viewer. This problem is demonstrated in FIG. 1, using equal area quadrilaterals. Many methods to improve apparent performance, including the present invention, key on this observation. Note that these methods focus on the front-end of the graphics pipeline